<?php

namespace App\Service\InterfaceService;

interface BaseElasticSearchInterface
{
    /**
     * 创建索引结构
     * @param arrray $params
     * $params['index'] = (string) 索引类名称 (Required)
     */
    public function putMapping(array $params );
    
    /**
     * 删除索引结构
     * @param arrray $params
     * $params['index'] = (string) 索引类名称 (Required)
     */
    public function delMapping(array $params );
    
    /**
     * 获取索引结构
     * @param arrray $params
     * $params['index'] = (string) 索引类名称 (Required)
     */
    public function getMapping(array $params );
    
    /**
     * 新增文档数据
     * @param arrray $params
     * $params['index'] = (string) 索引类名称 (Required)
     */
    public function insertDoc(array $params );
    
    /**
     * 更新文档数据
     * @param arrray $params
     * $params['index'] = (string) 索引类名称 (Required)
     */
    public function updateDoc(array $params );
    
    /**
     * 删除文档数据
     * @param arrray $params
     * $params['index'] = (string) 索引类名称 (Required)
     */
    public function delDoc(array $params );
    
    /**
     * 异步批处理文档数据
     * @param arrray $params
     * $params['index'] = (string) 索引类名称 (Required)
     */
    public function bulkDocAsync(array $params );
    
    /**
     * 同步批处理文档数据
     * @param arrray $params
     * $params['index'] = (string) 索引类名称 (Required)
     */
    public function bulkDocSync(array $params );
    
    /**
     * 获取索引结构
     * @param arrray $params
     * $params['index'] = (string) 索引类名称 (Required)
     */
    public function searchDoc(array $params );
    
    /**
     * 搜索统计文档数据
     * @param arrray $params
     * $params['index'] = (string) 索引类名称 (Required)
     */
    public function countDoc(array $params );
    
    /**
     * 搜索分组数据
     * @param arrray $params
     * $params['index'] = (string) 索引类名称 (Required)
     */
    public function groupDoc(array $params );
}